#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>
#include <stack>
#include <queue>
#include <vector>
using namespace std;

#include "Stack.h"
#include "Queue.h"
//class MinStack {
//public:
//    MinStack() {
//
//    }
//
//    void push(int val) {
//        st.push(val);
//        if (min_st.empty() || val <= min_st.top())
//        {
//            min_st.push(val);
//        }
//    }
//
//    void pop() {
//        if (st.top() == min_st.top())
//        {
//            min_st.pop();
//        }
//        st.pop();
//    }
//    int top() {
//        return st.top();
//    }
//
//    int getMin() {
//        return min_st.top();
//    }
//private:
//    stack<int> st;
//    stack<int> min_st;
//};
//
//int main()
//{
//    MinStack st;
//    st.push(3);
//    st.push(2);
//    st.push(4);
//    st.push(5);
//    st.push(1);
//    st.push(2);
//    cout << st.getMin() << endl;
//
//    return 0;
//}

//class Solution {
//public:
//    
//    bool IsPopOrder(vector<int>& pushV, vector<int>& popV)
//    {
//        stack<int> st;
//        int pushi = 0, popi = 0;
//        while (pushi < pushV.size())
//        {
//            st.push(pushV[pushi++]);
//            if (st.top() != popV[popi])
//            {
//                continue;
//            }
//            while (!st.empty() && popV[popi] == st.top())
//            {
//                st.pop();
//                popi++;
//            }
//        }
//        return st.empty();
//    }
//};
//
//int main()
//{
//    Solution s;
//    vector<int> v1 = { 1,2,3,4,5 };
//    vector<int> v2 = { 4,5,3,2,1 };
//
//    cout << s.IsPopOrder(v1, v2) << endl;
//    return 0;
//}

//struct A
//{
//	A(int a1 = 0, int a2 = 0)
//		:a1(a1)
//		,a2(a2)
//	{}
//	int a1;
//	int a2;
//};
//int main()
//{
//	const A* a = new A(1, 2);
//	cout << (a->a1) <<  "  " << a->a2 << endl;
//	return 0;
//}




//int main()
//{
//	stack<int> st;
//	st.push(1);
//	st.push(2);
//	st.push(3);
//	st.push(4);
//	int sz = st.size();
//	for (int i = 0; i < sz; i++)
//	{
//		cout << st.top() << " ";
//		st.pop();
//	}
//	cout << endl;
//	return 0;
//}
//
//int main()
//{
//	//ljl::stack_test1();
//	ljl::queue_test1();
//	return 0;
//}